UGV Rover
| ||||||||||||||||||||||
|
产品介绍
UGV Rover 是一款基于六轮四驱架构的开源移动机器人。采用大小脑架构设计,ESP32 主控模组的下位机负责电机 PID 控制、IMU 传感器控制、OLED 屏幕控制、舵机控制、灯光开关控制等,分担计算负载的同时为上位机节省 IO 资源以及提供高效的通信接口,上位机使用树莓派 4B 或树莓派5,确保实现高阶算力和指定策略等高级功能。
机器人机身结构采用2mm厚度的全铝合金外壳,结构强度高、耐用性好。采用软质防滑橡胶轮胎,搭配 4 个带编码器减速电机,实现闭环速度控制,有效防止震动,实现出色的运动性能,最高速度可达 1.3m/s。内置 3S 锂电池 UPS 供电模块,提供了强劲而持久的动力,支持边充电边使用,满足长时间的开发和使用需求。
树莓派 4B/5 搭配 USB 摄像头,通过高帧率低延时的摄像头实时画面,用户可以享受流畅的视觉体验,并且可以通过拍照和录像等功能捕捉到不同的精彩瞬间。此外,机器人的多种信息反馈——包括电池电压、CPU使用率等,都通过 WEB 应用实时显示,使得用户可以实时监控机器人的状态。
机器人的视觉系统配备了一个 2 自由度的大扭矩灵活云台和一个 160°超广角的 500 万像素摄像头,为用户提供了宽广的视角和灵活的观察角度、以及多样的 AI 机器视觉功能。云台旁的高亮度LED聚光灯保证了在光线不足的环境下也能清晰使用。此外,通过鱼骨导轨的设计,用户可以轻松扩展更多战术配件,进一步增强了机器人的功能性。
为了让用户能够充分利用这款机器人的潜力,我们提供了丰富的文档和教程,包括 JupyterLab 的 WEB 应用。无论是机器人技术的初学者还是经验丰富的开发者,都可以通过这些资源一步一步地深入了解、学习和创造。
产品特性
- 高效的大小脑架构:下位机主控为 ESP32,负责精确的电机 PID 控制和多种传感器读取,上位机树莓派 4B 或 5 提供高阶算力,双层架构让机器人运行更高效。
- 开源代码:上位机基于最新版的树莓派系统(Debain Bookworm)开发,WEB 应用基于 Flask、Python 语言,软件平台全部开源,便于用户学习和二次开发。
- 丰富的教程资源:提供丰富的 JupyterLab 交互式教程、图文教程和视频教程,从入门功能到高级功能,用户可以边看教程边学习如何控制机器人,降低小白的机器人技术学习曲线。
- 视角广泛:配备2自由度大扭矩灵活云台,提供横向 360° 全方位广阔的观察角度;搭配一个 160° 超广角的 500 万像素的摄像头,捕捉到更广泛的画面。
- 机器视觉功能:集成了颜色、物体、手势识别,人脸、运动检测等机器视觉功能,可扩展为更多应用。
- 丰富的交互方式:实时视频流、数字变焦、拍照、录像等功能,且 WEB 应用实时视频功能和画面上显示的机器人信息,提高用户交互体验。
- 跨平台远程控制:支持实现跨平台远程控制,无需安装APP,可根据教程使用蒲公英、Cpolar、LocalTunnel等方案进行超出局域网范围的远程控制。
- 可扩展性:结构上配有一个扩展平面和鱼骨导轨,方便扩展其它战术配件;硬件上,LED 灯接口有剩余的,可用于扩展水弹枪等其它外设,产品还可扩展 4G、5G 模块,方便用户实现更多的可能性。
- 结构耐用:2mm 厚度的全铝合金外壳,提供了卓越的结构强度和耐用性。
- 高性能驱动电机:配备四个带编码器减速电机,实现闭环速度控制,最高速度可达 1.3m/s,提供强劲动力。
- 全驱与高品质轮胎:采用四轮驱动系统,搭配软质防滑橡胶轮胎,确保机器人在各种地形上都有良好的抓地力和稳定性。
- 长续航力:采用 3S 锂电池 UPS 供电系统,支持边充电边使用,确保了长时间的续航能力。
产品组装
该部分组装教程主要包括两个方面,第一是型号名中为 ACCE 版本的产品安装 树莓派 4B/5 的教程,第二是安装锂电池的教程。
产品使用
使用前注意事项
使用前请务必了解以下内容:
- 购买 ACCE 型号的客户需要自备树莓派主板,安装好树莓派后才可正常使用;购买海外版的客户需要自行购买安装 3 个 18650 锂电池才可以正常使用,推荐使用高放电倍率的电池。这两个安装教程请参考【产品组装】。
- 首次接上电池需注意电池模块上是否有 LED 灯亮,如果 LED 灯亮则表示电池的正负极接反,电池未接反不会有 LED 灯亮,请检查并确保电池未接反。电池接反的情况下禁止充电,否则有几率引起爆炸。
- 该产品不能受到剧烈的撞击,且不防水。
- 严禁用手转动车轮。对于高齿轮减速电机,手动旋转车轮可能会对导致变速箱损坏。
首次使用
产品出厂带有的 SD 卡是带有已经配置好软件的镜像,将 SD 卡插在树莓派上即可使用。
打开电源开关后产品会进行初始化,OLED 屏幕会显示初始化的一系列内容;树莓派在开机的过程中会自动建立一个热点,并且在项目主程序自动运行后会将 ip 地址显示在 OLED 屏幕上,开机完成后 OLED 屏幕显示的内容含义如下:
- 第一行 E:网口的 IP 地址,可以用来远程连接树莓派;No Ethernet 表明此时树莓派上无网线接入。
- 第二行 W:AP 模式下建立热点后,会显示默认 IP 为 192.168.50.5;STA 模式下连接到已知 WIFI 所分配的 IP 地址;显示出的 IP 地址可以用来无线连接树莓派。
- 第三行 F/J:网络端口号,5000 用于访问产品主程序控制页面,8888 用于访问 JupyterLab 页面;
- 第四行 AP 表示此时 WIFI 处于 AP 模式下,时间表示设备的使用时长;以 dBm 为单位的数值表示 WIFI 处于 STA 模式下的信号强度 RSSI。
用手机/电脑连接该产品自动建立的热点,热点名称为 AccessPopup,热点密码为 1234567890,连接好后打开浏览器,输入 AP 模式下设备默认的 IP 地址(该地址会在 OLED 屏幕上的 W 行处显示),即在网址栏中输入 192.168.50.5:5000 访问产品主程序的控制界面。
注意:如果产品开机后没有自动建立热点,需要更新产品上的镜像,请参考【烧录镜像】。
网络配置
网络配置是需要进入到 JupyterLab 页面去配置的,有两种打开 JupyterLab 页面的方式:
- 可以通过主程序的控制界面中的按钮,点击即进入 JupyterLab 页面;
- 可以通过访问设备的 IP 地址:8888 进入 JupyterLab 页面。出厂产品默认的还是 AP 模式,因此在网址栏中输入 192.168.50.5:8888 即可打开 JupyterLab 页面。
初次连接到已知 WIFI
由于产品出厂默认的 WIFI 模式都是 AP 模式,初次要切换至 STA 模式连接到已知 WIFI 有以下的步骤:
1. 进入 JupyterLab 页面后,点击页面下方的 Terminal,输入以下指令回车进入项目文件夹。
bash
2.可以看见当前的位置为 ~/ugv_rpi,接着进入 WIFI 配置工具的文件夹,输入以下指令后回车。
cd AccessPopup/
3. 给 AccessPopup 文件夹下的 WIFI 配置脚本增加可执行权限,输入以下指令后回车。
sudo chmod +x installconfig.sh
4. 运行 WIFI 配置脚本,输入以下指令后回车。
sudo ./installconfig.sh
5. 运行脚本后显示如下界面,这里要设置连接到已知 WIFI,因此输入 5 后回车进行新的 WIFI 连接设置。
6. 接着会跳转至添加或编辑 WIFI 网络界面,等待一会,此页面会输出当前设备附近的 WIFI 名,如下所示,每一个 WIFI 前都有一个序号,输入要连接的 WIFI 序号后回车。
7. 接着输入要连接的 WIFI 密码,回车后,该产品会连接到设置的 WIFI 热点。连接成功后,可以在产品的 OLED 屏幕上看见 W 行的 IP 地址变化。
8. 由于 IP 地址的变化,因此 JupyterLab 页面要重新用当前 OLED 屏幕上 W 行的 IP 地址进行访问。该产品连接成功后处于 STA 模式,进入 JupyterLab 页面后还是之前的界面,如下所示,按任意键继续。
9. 最后输入 9 后回车即可退出 WIFI 配置脚本。
连接已知 WIFI 成功后,如果此后产品开机运行时脱离了已知 WIFI 的范围,则该产品会自动建立热点,热点默认的情况下依然是 AccessPopup。
切换 WIFI 模式
- STA 模式切换至 AP 模式
在连接已知 WIFI 的情况下,要让设备切换至 AP 模式建立热点,打开 JupyterLab 页面的 Terminal,输入 bash 进入项目文件夹下,再输入以下指令来建立热点。
sudo accesspopup -a
- AP 模式下再重新切换至 STA 模式
在已经进行过已知 WIFI 配置后,要让设备从 AP 模式切换至 STA 模式,输入以下指令来重新连接到已知 WIFI。
sudo accesspopup
注:只要是切换了 WIFI 模式,产品主程序的控制界面和 JupyterLab 页面的 IP 地址都要相对应地刷新才能访问。
删除已知 WIFI
- 打开 JupyterLab 页面的 Terminal,输入 bash 进入项目文件夹下。
- 输入以下指令来查看所有网络连接的信息。
nmcli connection show
- 输入以下指令进行已知 WIFI 的删除,需要将下述指令中的<connection_name>替换为需要删除的 WIFI 名称。
sudo nmcli connection delete <connection_name>
注:如果您删除的是当前设备所连接的已知 WIFI,则删除后该产品会自动建立热点,热点默认的情况下依然是 AccessPopup,访问 JupyterLab 页面的 IP 地址要刷新才能接着使用。
产品教程目录
- 01 JupyterLab 基础和机器人介绍
- 02 Python 底盘运动控制
- 03 云台控制和 LED 灯控制
- 04 OLED 屏幕控制
- 05 在 JupyterLab 中构建 UI 界面
- 06 获取底盘反馈信息
- 07 使用 JSON 指令控制下位机
- 08 下位机 JSON 指令集
- 09 开机自动发送指令
- 10 播放音频文件
- 11 文字转语音 (TTS)
- 12 使用 Flask 实现低延时图传
- 13 在 Jupyter Lab 中显示实时画面
- 14 延时摄影
- 15 OpenCV 运动检测
- 16 通过按键控制拍照
- 17 OpenCV 人脸识别
- 18 基于 DNN(深度神经网络)的物体识别
- 19 基于 OpenCV 的颜色识别
- 20 基于 OpenCV 的颜色追踪
- 21 基于 OpenCV 的巡线自动驾驶
- 22 基于 MediaPipe 的手势识别
- 23 基于 MediaPipe 的人脸识别
- 24 基于 MediaPipe 的姿态检测
- 25 简易的 WEB 应用
- 26 主程序架构介绍
- 27 YAML 配置文件设置
- 28 Crontab 开机自动运行脚本
- 29 自定义命令行功能
- 30 WEB 命令行应用
产品初始化
烧录镜像
注意:该部分内容不是必须操作的,产品更新了系统镜像或者需要将产品的上位机恢复至出厂的系统镜像这两种情况下才需要重新给树莓派烧录镜像。
树莓派官方开发了一款图形 SD 卡写入工具为 Raspberry Pi Imager,适用 Windows、Mac OS 和 Ubuntu 等操作系统;
它会自动下载图像并将其安装到 SD 卡中,也可以使用它将其它系统镜像安装到 SD 卡中,点击 Raspberry Pi Imager 官网链接,下载最新版本的 Raspberry Pi Imager 并安装它。
器件准备
产品的配件包清单中含有以下两个器件:
- SD 卡读卡器
- 至少 8GB 的 SD 卡
镜像准备
下载好需要烧录的镜像,下载链接:UGV_Rover_镜像 提取码:1rm1
操作步骤
1. 首先使用 SD 卡读卡器将 SD 卡连接至电脑,打开 Raspberry Pi Imager,点击“CHOOSE DEVICE”选择树莓派设备。
2. 根据您手中产品的树莓派型号进行选择,不进行选择也可以。本次产品使用到的设备是树莓派 4B,因此这里选择“Raspberry Pi 4”。
3. 接着点击“选择操作系统”来选择要烧录的操作系统镜像。
4. 在系统镜像选择界面划至最底下,点击“Use custom”来选择前面下载的配置好的镜像。
5. 接着点击“选择SD卡”来选择要烧录系统的 SD 卡。
6. 上述选择全部选择好后,点击“NEXT”。会弹出一个自定义设置对话框,选择“编辑设置”来进行用户名和 WiFi 配置。
7. 首先先在“GENERAL”这一栏中设置用户名和 WiFi,如下图所示勾选。用户名和密码都需要设置为 ws,如果有改变,则会导致树莓派开机后该产品的项目程序无法正常运行。WiFi 配置需要改成自己的热点名和热点密码,且 WiFi 国家选择为 CN。
8. 接着在“SERVICES”开启 SSH 服务,这样后可以使用 SSH 连接来远程控制您的树莓派系统。至此,设置好后,点击保存,会弹出 SD 卡上的数据都会被删除,选择“是”。
9. 开始烧录镜像,等待一段时间烧录完成后,Raspberry Pi Imager 会自动弹出 SD 卡,取下 SD 卡插入到产品的树莓派中。打开产品上的电源主开关,树莓派加载 SD 卡中的镜像会反复重启几次,等待两三分钟后就能正常开机。
资料下载
3D 图纸
STEP 模型
下位机驱动板原理图
开源程序
FAQ
答:是正常的,后轮电机上的灯就是不亮的,因为后轮电机上的接口没有用到电机上的编码器。
技术支持
联系人:方工
EMAIL:2355742825@qq.com
QQ:2355742825
微信:扫下方二维码添加